﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace clock
{
    class Program
    {
        //static int InputHour()
        //    {
        //    Console.WriteLine("введите значение для часов от 0 до 23");
        //    int hour = Convert.ToInt32(Console.ReadLine());
        //    while (hour < 0 || hour > 23)
        //    {
        //        Console.WriteLine("вы ввели неверное значение для часов, попробуйте еще раз");
        //        hour = Convert.ToInt32(Console.ReadLine());
        //    }
        //    return hour;
        //}

        //static int InputMin()
        //{

        //    int min = int.Parse(Console.ReadLine());
        //    while (min < 0 || min > 59)
        //    {               
        //       Console.WriteLine("вы ввели неверное значение для минут, попробуйте еще раз");
        //       min = int.Parse(Console.ReadLine());
        //    }
        //    return min;
        //}   переделал - загнал ввод часов, минут, секунд в один метод InputTime
        //сделан с учетом ввода данных не того типа (буквы, нецелые числа и т.д.) 
        static int InputTime(int timeValue, int maxValue)
        {
            try
            {
                while (timeValue < 0 ||timeValue >  maxValue)
                {
                   timeValue = int.Parse(Console.ReadLine());
                   Console.WriteLine("если программа не продолжит работу через секунду"); 
                   Console.WriteLine("вы ввели неверное значение попробуйте еще раз" );
                }
                return timeValue; 
            }
            catch (FormatException)
            {
                Console.WriteLine("неправильный ввод, пожалуйста вводите целые числа");
                return InputTime(timeValue,maxValue);
            }
           
            }
            static void Main(string[] args)
        {
            Console.WriteLine("введите значение для часов от 0 до 23");
            int startHour = -1;
            int hourMaxValue = 23;
            int hour = InputTime(startHour, hourMaxValue);
            Console.WriteLine("введите значение для минут от 0 до 59");
            int startMin = -1;
            int minMaxValue = 59;
            int min = InputTime(startMin, minMaxValue) ;
            Console.WriteLine("введите значение для секунд от 0 до 59");
            int sekMaxValue = 59;
            int startSek = -1;
            int sek = InputTime(startSek, sekMaxValue);
            while (true)
            {
                sek = sek + 1;
                if (sek == 60)
                {
                    sek = 0;
                    min = min + 1;
                }
                if (min == 60)
                {
                    min = 0;
                    hour = hour + 1;
                }
                if (hour == 24) { hour = 0; }

                Console.WriteLine((hour < 10 ? " " : "") + hour + ":" + (min < 10 ?"0":"")+min+":"+(sek<10?"0":"")+sek);
                //другой вариант вывода
                //Console.WriteLine("{0:0} {1} {2:00} {1} {3:00}", hour, ":", min, sek); 
                Thread.Sleep(1000);
                Console.Clear();
            }
        }
     }
}

